import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;


public class SO {
	private int x;
	private int y;
	private double vx =1;
	private double vy =1;
	private int radio = 20;
	private double gravedad = 15;
	private double dt =0.2;
	private boolean gameOver=false;
	private double juegoVy = -75;
	private int maxVelocidad = 20;
	private int agilidad=1;
	private Multimedia mult;
	private VirtualGT vgt;	
	
	public double getVx() {
		return vx;
	}

	public void setVx(double vx) {
		this.vx = vx;
	}

	public double getVy() {
		return vy;
	}

	public void setVy(double vy) {
		this.vy = vy;
	}

	public int getRadio() {
		return radio;
	}

	public void setRadio(int radio) {
		this.radio = radio;
	}

	public SO(int x, int y,Multimedia mult,VirtualGT vgt) {
		// TODO Auto-generated constructor stub
		this.x=x;
		this.y=y;		
		this.mult = mult;
		this.vgt=vgt;
	}
	
	public void MoverDerecha(){
		if(vx+agilidad <maxVelocidad){
			vx += agilidad;//aumentar la velocidad
		}
	}
	public void MoverIzquierda(){
		if(vx-agilidad >-maxVelocidad){
			vx -= agilidad;//aumentar la velocidad
		}
	}
	
	public void Actualizar(){
		//horizontal
		if(x+vx >vgt.getWidth()-radio-1){//si topa la parte derecha
			x = vgt.getWidth()-radio-1;
			vx=-vx ;			
		}else if(x + vx<0+radio){//si topa la parte izquierda
			x=0+radio;
			vx=-vx;
		}else{
			x += vx ;
		}			
		//vertical
		if(y >vgt.getHeight()-radio-1){//si topa la parte inferior
			gameOver=true;
			y=vgt.getHeight()-radio;			
		}else if(y + vy<0+radio){//si topa la parte superior
			y=0+radio;
			vy=-vy;
		}else{//influencia de la aceleracion en este caso la gravedad
			vy += gravedad*dt;// en la velocidad
			y += vy*dt + .5*gravedad*dt*dt ;//y en la altura
		}					
	}
	
	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public boolean isGameOver() {
		return gameOver;
	}

	public void setGameOver(boolean gameOver) {
		this.gameOver = gameOver;
	}

	public void paint(Graphics g) {
		// TODO Auto-generated method stub
		String s= "Sistema Operativo: ";
		switch(Niveles.nivel){
			case 1:g.drawImage(mult.SOW, x-radio, y-radio, vgt);
					s=s+"Windows";
			break;
			case 2:g.drawImage(mult.SOM, x-radio, y-radio, vgt);
					s=s+"Mac OS";
			break;
			case 3:g.drawImage(mult.SOL, x-radio, y-radio, vgt);
					s=s+"Linux";
			break;
			case 4:g.drawImage(mult.SOS, x-radio, y-radio, vgt);
					s=s+"Solaris";
			break;
		}
		Font f = new Font("Serif",Font.BOLD,22);
		g.setFont(f);
		g.setColor(Color.white);//sombra
		g.drawString(s, 250+2, 50+2);
		g.setColor(Color.blue);
		g.drawString(s, 250, 50);
		
						
	}

	public double getJuegoVy() {
		return juegoVy;
	}

	public void setJuegoVy(double juegoVy) {
		this.juegoVy = juegoVy;
	}
}
